﻿## Установка

1. Скачайте репозиторий проекта:
git clone https://github.com/andre059/project_django_kursach
2. Перейдите в папку проекта:
cd project
3. Установите зависимости:
pip install -r requirements.txt



- Реализация интерфейса заполнения рассылок, CRUD-механизм для управления рассылками.
- Реализация скрипт рассылок, которые работают как из командой строки, так и по расписанию.
- Добавлены настройки конфигурации для периодического запуска задачи.


# Сущности системы

1  Клиент сервиса:
- контактный email,
- ФИО,
- комментарий.

2  Рассылка (настройки):
- время рассылки;
- периодичность: раз в день, раз в неделю, раз в месяц;
- статус рассылки: завершена, создана, запущена.

3 Сообщение для рассылки:

- тема письма,
- тело письма.

4 Логи рассылки:

- дата и время последней попытки;
- статус попытки;
- ответ почтового сервера, если он был.


# Логика работы системы
 - После создания новой рассылки, если текущее время больше времени начала и меньше времени окончания, то должны быть 
   выбраны из справочника все клиенты, которые указаны в настройках рассылки, и запущена отправка для всех этих клиентов.
 - Если создается рассылка со временем старта в будущем, то отправка должна стартовать автоматически по наступлению 
   этого времени без дополнительных действий со стороны пользователя системы.
 - По ходу отправки сообщений должна собираться статистика (см. описание сущности «сообщение» и «логи» выше) по каждому 
   сообщению для последующего формирования отчетов.
 - Внешний сервис, который принимает отправляемые сообщения, может долго обрабатывать запрос, отвечать некорректными 
   данными, на какое-то время вообще не принимать запросы. Нужна корректная обработка подобных ошибок. 
   Проблемы с внешним сервисом не должны влиять на стабильность работы разрабатываемого сервиса рассылок.

# Контекст

разделение права доступа для различных пользователей и добавлен раздел 
блога для развития популярности сервиса в интернете.

# Описание 

- Расширена модель пользователя для регистрации по почте, а также верификации.
- Добавлен интерфейс для входа, регистрации и подтверждения почтового ящика.
- Реализовано ограничение доступа к рассылкам для разных пользователей.
- Реализован интерфейс менеджера.
- Создан блог для продвижения сервиса.

# Функционал менеджера

- Может просматривать любые рассылки.
- Может просматривать список пользователей сервиса.
- Может блокировать пользователей сервиса.
- Может отключать рассылки.
- Не может редактировать рассылки.
- Не может управлять списком рассылок.
- Не может изменять рассылки и сообщения.

# Функционал пользователя

Пользователь не может случайным образом изменять чужую рассылку и может работать только со своим списком клиентов
и со своим списком рассылок.

# Блог

В сущность блога добавлены следующие поля:

- заголовок,
- содержимое статьи,
- изображение,
- количество просмотров,
- дата публикации.

# Главная страница

Отображена следующую информацию:

- количество рассылок всего,
- количество активных рассылок,
- количество уникальных клиентов для рассылок,
- 3 случайные статьи из блога.
